Many businesses rely on large-scale data processing systems for storing and processing business data. The viability of a business may depend on the accuracy of the data stored within its data processing system. Human operator error or improper software operation can lead to data corruption. Businesses must stand ready to correct data corruptions. Moreover, businesses must be able to quickly correct data corruptions so that their data processing systems can resume processing transactions in the shortest possible time.
When an unexpected data corruption occurs, businesses can restore data to its state just prior to corruption using a data backup copy. FIG. 1 is a block diagram illustrating relevant components of an exemplary data processing system 10 employing data backup technology. FIG. 1 shows data processing system 10 having a host node 12, a write-data transaction log memory 14, a data storage system 16, and a data storage system 18. Data storage systems 16 and 18 include data memories 22 and 24, respectively. The data processing system 10 shown in FIG. 1 and the description thereof should not be considered prior art to the invention described or claimed herein.
Data memories 22 and 24 store data volumes. More particularly, data memory 22 stores a primary data volume of data processing system 10 while data memory 24 stores a point-in-time (PIT) backup copy of the primary data volume. The primary data volume is the working volume of data processing system 10, while the PIT backup copy, as its name implies, is a copy of the primary data volume created at a specific point-in-time.
Host node 12 may take form in a computer system (e.g., a server computer system), disk array controller or other system that receives and processes requests to read or write data to the primary data volume from client computer systems (not shown). In response to receiving these requests, host node 12 generates read or write-data transactions for reading or writing data to the primary data volume within data memory 22. A copy of each transaction that writes new data or modifies existing data of the primary data volume, is stored in write-data transaction log memory 14.
Occasionally, host node 12 unwittingly generates an invalid write-data transaction as a result of human, software, or hardware error. The invalid write-data transaction corrupts the primary data volume by inadvertently deleting good data or overwriting good data with false data. When the data corruption is discovered, host node 12 can use the PIT backup copy in data memory 24 and select write-data transactions stored in write-data transaction log memory 14 to restore the primary data volume in data memory 22 to the state it occupied just before the data corrupting event.
In the restore procedure, host node 12 applies selected write-data transactions held in write-data transaction log memory 14 to the PIT backup copy. The selected transactions are those that occurred before the write-data transaction that caused the data corruption. After host node 12 finishes applying these logged write-data transactions, the PIT backup copy is transformed into a copy of the primary data volume at the point in time just before host node 12 executed the invalid or erroneous write-data transaction. Host node 12 completes the restore process by synchronizing the corrupted primary data volume in data memory 22 to the modified copy in data memory 24. Synchronization includes overwriting each block of data memory 22 with the data contents of its corresponding block in data memory 24. Once synchronization is complete, host node 12 can resume responding to requests from client computer systems to read or write data to the primary data volume.
When creating PIT backup copy, host node 12 copies data from each block of data memory 22 that stores primary data volume data to a respective block of data memory 24 until the entire data content of the primary data volume is copied to data memory 24. Primary volume data can be compressed using a lossless compression algorithm to decrease the time needed to successfully complete the backup operation.
Often, the primary data volume is backed up several times a day. In backup operations subsequent to the first, host node 12 copies the entire contents of the primary data volume to data memory 24 in a block-by-block copy process in the manner described above, thereby overwriting data of the previous PIT backup copy. Copying the entire contents of the data volume to data memory 24, however, can be a time consuming process during which host node 12 cannot respond to client computer requests to read or write data to the primary data volume. Rather than performing a time consuming backup operations, host node 12 can refresh the PIT backup copy. Host node 12 keeps track of the blocks in data memory 22 that contain new or modified primary volume data since the last backup or refresh operation, and when a refresh operation is requested, only those blocks of data memory 22 that contain new or modified data since the last refresh or backup, are copied by host node 12 to respective blocks in data memory 24. Unfortunately, read or write access to the primary data volume, other than for copying data blocks for the refresh operation, is denied between the times the refresh operation starts and the refresh operation completes. In other words, during the refresh operation, host node 12 cannot respond to read or write requests from client computer systems.